import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
// import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
import viteSvgIcons from 'vite-plugin-svg-icons';
// import styleImport from 'vite-plugin-style-import';
import path from "path";
import { viteMockServe } from "vite-plugin-mock";
// import eslintPlugin from 'vite-plugin-eslint' // 引入vite-plugin-vue
//  引入等比适配插件
const px2rem = require('postcss-px2rem')

// 配置基本大小
const postcss = px2rem({
    // 基准大小 baseSize，需要和rem.js中相同
    remUnit: 16
})
const localEnabled = process.env.USE_MOCK || false;
const prodEnabled = process.env.USE_CHUNK_MOCK || false;
// https://vitejs.dev/config/
export default defineConfig({
    plugins: [vue(), viteSvgIcons({
        // 配置路劲在你的src里的svg存放文件
        iconDirs: [path.resolve(process.cwd(), 'src/icons/svg')],
        symbolId: 'icon-[dir]-[name]',
    }),
    viteMockServe({
        mockPath: "./src/server/mock",
        localEnabled: localEnabled, // 开发打包开关
        prodEnabled: prodEnabled, // 生产打包开关
        // 这样可以控制关闭mock的时候不让mock打包到最终代码内
        injectCode: `
        import { setupProdMockServer } from './mockProdServer';
        setupProdMockServer();
      `,
        logger: false, //是否在控制台显示请求日志
        supportTs: false //打开后，可以读取 ts 文件模块。 请注意，打开后将无法监视.js 文件
    })
        // eslintPlugin({
        //     // include: ['src/**/*.vue', 'src/**/*.js'], // 检查的文件
        // })
    ],
    resolve: {
        // 配置别名
        alias: {
            "@": path.resolve(__dirname, "src"),
            "components": path.resolve(__dirname, "src/components"),
            "styles": path.resolve(__dirname, "src/styles"),
            "plugins": path.resolve(__dirname, "src/plugins"),
            "views": path.resolve(__dirname, "src/views"),
            "layouts": path.resolve(__dirname, "src/layouts"),
            "utils": path.resolve(__dirname, "src/utils"),
            "apis": path.resolve(__dirname, "src/apis"),
            "dirs": path.resolve(__dirname, "src/directives"),
        },
    },
    // 启动默认打开
    server: {
        hostname: '0.0.0.0', // 默认是 localhost
        port: '8000', // 默认是 3000 端口
        open: true, // 浏览器自动打开
        https: false, // 是否开启 https
        ssr: false, // 服务端渲染
        base: './', // 生产环境下的公共路径
        outDir: 'dist', // 打包构建输出路径，默认 dist ，如果路径存在，构建之前会被删除
        proxy: { // 本地开发环境通过代理实现跨域，生产环境使用 nginx 转发
            '/api': {
                // http://1.14.106.72:3004
                // http://127.0.0.1:3004
                target: 'http://1.14.106.72:3004', // 后端服务实际地址
                changeOrigin: true,
                rewrite: path => path.replace(/^\/api/, '')
            }
        },
    },
    lintOnSave: true,
    css: {
        loaderOptions: {
            postcss: {
                plugins: [
                    postcss
                ]
            }
        }
    }
})
